如果您現在正在閱讀本文,那么您已經使用了客戶端-服務器模型,甚至沒有意識到。您(作為客戶)請求了由網絡服務器提供給您的資源(即本網頁)。這是現代通信的流行架構,其中數字數據由服務器提供給客戶端。另一種模式稱為點對點或“P2P”,依賴于相互連接的計算機來共享數據。與 P2P 模型不同,客戶端-服務器架構依賴于連接到網絡的主服務器機器或一組機器,通常位于數據中心。客戶端或連接到 Web 或本地網絡的普通計算機發送數據包以從服務器請求數據。
當服務器收到這些請求時,它們可以做以下三件事之一:接受數據包,拒絕或“丟棄”數據包,或靜默終止連接。依靠使用“端口”來控制數據流,客戶端和服務器必須在正確的端口上相互發送請求。大多數防火墻設置為接收不同類型的請求。例如,大多數使用超文本傳輸??協議或“HTTP”的服務器將只接受通過端口 80 或 443 對其數據的請求。如果您將數據包從客戶端發送到正確配置的服務器到另一個端口,服務器通常會靜默丟棄發送的數據包。
1. 網絡服務器
Web 服務器為您現在正在查看的站點提供支持。這種類型的服務器專注于向客戶端提供 Web 內容。
Web 服務器只接受來自客戶端的“GET”和“POST”請求(以及其他動詞)。
“GET”請求是客戶端只想檢索信息而沒有任何信息要提交給服務器的情況。
另一方面,“POST”請求是當客戶端確實有信息要與服務器共享并期望得到響應時。例如,在 Web 服務器上填寫表單并單擊提交按鈕是從客戶端到服務器的“POST”請求。
Web 服務器本質上通常是“無頭”的。這是為了保留服務器上的內存并確保有足夠的內存為服務器上的操作系統和應用程序供電。
“無頭”意味著它不像傳統的家用計算機那樣運行,而只是提供內容。這些服務器的管理員只能通過命令行終端連接到它們。
請記住,這些類型的服務器可以像您的家用計算機一樣運行任何類型的應用程序。
它們也可以在任何操作系統上運行,只要它們遵守網絡的一般“規則”。
現代 Web 應用程序通常在一系列層上運行,從服務器端腳本和處理數據的程序(例如 PHP、ASP.NET 等)開始,到對數據進行編程的客戶端腳本(例如 Javascript)結束顯示。
然后,Web 瀏覽器會相應地呈現內容以顯示您現在正在閱讀的頁面。
一些流行的網絡服務器包括 Microsoft IIS、Apache、Nginx 等。
一些用于 Web 服務器的端口:HTTP 的端口 80(未加密)和 HTTP 的端口 443(加密)。
2. 數據庫服務器
數據庫服務器通常與另一種類型的服務器協同工作。這種服務器的存在只是為了將數據分組存儲。
有無數種方法可以根據不同的理論來保存數據。一種更常見的類型被稱為“SQL”或“結構化查詢語言”。
數據庫程序員可以使用數據庫語言的腳本在這些服務器上創建數據庫。
Web 應用程序通常將其服務器端組件連接到數據庫服務器以在用戶請求時獲取數據。
一個好的做法是在不同的機器上擁有網絡服務器和數據庫服務器。數據庫服務器應該獨立存在的原因是為了安全。
如果黑客能夠訪問主 Web 服務器而不是數據庫服務器,他們將能夠輕松檢索或修改存儲在數據庫服務器中的數據。
一些流行的數據庫服務器包括 MySQL、MariaDB、Microsoft SQL、Oracle 數據庫等。
用于數據庫服務器的一些端口:端口 3306(MySQL、MariaDB)、端口 1433(MS-SQL)、端口 1521(Oracle DB)。
3. 電子郵件服務器
電子郵件服務器通常在“SMTP”或“簡單郵件傳輸協議”上運行。較新的郵件服務器還運行其他可能的協議,但 SMTP 仍然是主要協議。
電子郵件服務器為郵件服務提供動力。這些服務器本身只是將電子郵件從一個客戶端接收到另一個客戶端并將數據轉發到另一臺服務器。
通過 SMTP 發送數據時,數據會得到簡化,因此某些信息(如 Web 格式)通常會在電子郵件交易中丟失。
電子郵件服務器的現代方法通常將它們與 Web 服務器配對。這允許用戶擁有一個“網絡客戶端”,以圖形方式顯示網頁上的數據。一些較新的 Web 應用程序甚至可以在不安裝任何東西的情況下模擬家用計算機電子郵件客戶端。
一些用于電子郵件服務器的端口:端口 25 (SMTP)、端口 587 (安全 SMTP)、端口 110 (POP3)
4. 網絡代理服務器
Web 代理服務器可以在多種協議中的一種上運行,但它們都做一件共同的事情。
它們接收用戶請求,對其進行過濾,然后代表用戶采取行動。最流行的網絡代理服務器類型旨在繞過學校和組織的網絡過濾器。
由于網絡流量全部通過一個尚未被阻止的 IP 地址和網站,因此用戶可以通過這些過濾器訪問被禁止的網站。
不太流行的類型是組織代理服務器。這具有相同的效果,但通常由組織授權。
它獲取用戶的網絡流量,通常將其記錄下來以供稍后評估,然后將其發送到 Internet。
這將用戶的流量集中在一起,因此無法公開區分一臺計算機與另一臺計算機。
這是由組織有意完成的,以防止用戶成為目標,并且通常能夠檢查、緩存和分析發送和接收的數據包。
一些用于 Web 代理服務器的端口:端口 8080、8888 等
5. DNS 服務器
DNS 服務器或“域名服務”服務器用于將域名轉換為其相應的 IP 地址。
當您輸入域名并按 Enter 鍵時,您的瀏覽器會引用此服務器。這個想法是用戶不必記住 IP 地址,組織可以有一個合適的名稱。
通常,Internet 服務提供商 (ISP) 為其用戶提供 DNS 服務器。但是,也有許多組織免費提供此查找服務(例如流行的 IP 為 8.8.8.8 的 Google DNS 服務器)。
當用戶創建新域名時,DNS 服務器也會被竊聽。DNS 服務器在分層基礎上運行,因此有一些比其他服務器更“權威”的服務器。
域名在一臺上級 DNS 服務器上注冊,其他下級 DNS 服務器引用該服務器。通常通過一個需要 24 到 48 小時的過程,這種注冊會在世界范圍內傳播。
用于 DNS 服務器的端口:端口 53(TCP 和 UDP)。
6. FTP 服務器
FTP 服務器或“文件傳輸協議”服務器有一個目的:托管用戶之間的文件交換。
默認情況下,這些服務器不提供任何類型的加密,因此有許多安全版本的協議經常在其位置使用(例如sFTP,它是基于安全 SSH 協議的 FTP)。
這種類型的服務器允許用戶在通過 FTP 客戶端驗證后上傳文件或下載文件。用戶還可以瀏覽服務器的文件并根據需要下載單個文件。
一些用于 FTP 服務器的端口:用于 FTP 的端口 20,21 或用于 sFTP 的端口 22。
7. 文件服務器
文件服務器不同于 FTP 服務器。這種類型的服務器更現代,通常能夠將網絡文件“映射”到驅動器上。這意味著用戶可以使用家庭計算機的文件瀏覽器查看文件夾。
這種形式的服務器的主要優點是用戶可以上傳和下載共享文件。文件權限由管理員控制。
通常文件服務器存在于 Windows Active Directory 環境或 Linux 環境中的企業網絡中。
8. DHCP 服務器
DHCP 服務器使用動態主機通信協議 (DHCP) 來配置客戶端計算機的網絡設置。
網絡中的 DHCP 服務器不必為大型網絡中的客戶端計算機手動配置靜態 IP 地址和其他網絡設置,而是將這些網絡設置動態配置到 LAN 計算機。
用于 DHCP 服務器的端口:端口 UDP 67。